/**
 * @file main.cpp
 * @brief 串口调试工具 - 应用程序入口文件
 * 
 * 本文件是串口调试工具应用程序的入口点，包含标准的Qt应用程序启动流程：
 * - 创建Qt应用程序实例
 * - 配置应用程序基本信息
 * - 初始化串口支持
 * - 创建并显示主窗口
 * - 启动事件循环
 * 
 * 作为整个应用程序的起点，此文件负责设置应用程序环境并启动GUI界面。
 */

#include "mainwindow.h"  // 包含主窗口类的定义
#include <QApplication>  // 包含Qt应用程序类
#include <QMessageBox>   // 包含消息框类
#include <QSerialPortInfo> // 包含串口信息类

/**
 * @brief 应用程序入口函数
 * @param argc 命令行参数数量
 * @param argv 命令行参数数组
 * @return 程序退出状态码
 * 
 * main函数是所有C++程序的标准入口点，在此串口调试工具中，它负责：
 * 1. 创建Qt应用程序实例，初始化Qt框架
 * 2. 配置应用程序基本信息（名称和版本号）
 * 3. 预加载串口模块，确保系统支持
 * 4. 实例化并显示主窗口
 * 5. 启动事件循环，处理用户交互和系统事件
 * 
 * 关键实现细节：
 * - 使用QApplication::setApplicationName()和setApplicationVersion()设置应用程序元数据
 * - 调用QSerialPortInfo::availablePorts()预初始化串口功能
 * - 创建MainWindow对象并调用show()显示界面
 * - 返回a.exec()启动Qt事件循环，使应用程序保持运行状态
 */
int main(int argc, char *argv[])
{
    // 创建Qt应用程序实例
    QApplication a(argc, argv);
    
    // 设置应用程序信息
    QApplication::setApplicationName("串口调试工具");   // 设置应用程序名称
    QApplication::setApplicationVersion("1.0.0");      // 设置应用程序版本号
    
    // 检查系统中是否有可用的串口设备 保留检查逻辑，但不再显示弹窗提示
    (void)QSerialPortInfo::availablePorts();
    
    // 创建主窗口实例
    MainWindow w;
    // 显示主窗口
    w.show();
    
    // 启动应用程序的事件循环，处理用户交互和系统事件
    return a.exec();
}